package com.my.springboot.tuling.concurrent;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 * 使用线程的方式去执行程序
 * 创建了100001个线程，线程执行一会就会线程切换，上下文切换导致慢
 *
 * start和run区别：
 * start来启动相应的线程,会创建一个新线程执行run方法   run只是threa的普通方法
 * 重复调用start()方法会报错IllegalStateException，可以重复调用run方法
 */
public class ThreadTest {

    public static void main(String[] args) throws InterruptedException {
        Long start = System.currentTimeMillis();
        final Random random = new Random();
        final List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 100000; i++) {
            Thread thread = new Thread(){
                public void run(){
                    list.add(random.nextInt());
                }
            };
            thread.start();
            thread.join();
        }
        System.out.println("时间：" + (System.currentTimeMillis() - start));
        System.out.println("大小：" + list.size());
    }
}
